Visibility quantifiers

The visibility quantifiers for functions/ state variables of a contract are

external, public, internal, and private. The external functions cannot be used

for internal calls and are meant to be called by other contracts. To call

external function within contract this.function_name() call is required.

State variables cannot be marked as external. Public functions/ variables can

be used both externally and internally. Solidity automatically creates a

getter function for the public state variable. Internal functions/ variables can

only be used internally or by derived contracts. Private functions/ variables

can only be used internally and not even by derived contracts.

An example of visibility quantifiers

pragma solidity ^ 0.5.0;

contract Apple {

uint private adata;

uint public ainfo;

constructor() public {

ainfo = 2 0;

}

function incr(uint x) private pure returns (uint) {return x +

10;}

function updateD ata(uint x) public {adata =x;}

function getD ata() public view returns(uint) {return data;}

function compute(uint x, uint y) internal pure returns (uint)

{return x + y;}

}

contract M ango {

function readD ata() public returns(uint) {

Aa = new A();

a.updateD ata(7 0);

return .getD ata();

}

}

contract Banana is Apple {

uint private result;

A private a;

constructor() public {